Skip to content

feat: attendance/#673#679

Merged
redjungi09 merged 21 commits into
developfrom
feat/attendance/#673
Apr 14, 2026
Merged

feat: attendance/#673#679
redjungi09 merged 21 commits into
developfrom
feat/attendance/#673

Conversation

@hjbin-25

Copy link
Copy Markdown
Member

변경사항

  • 출석판 브로드캐스트 스케줄러 추가 (0 0 0-5,7-23 * * * KST)
    • 06:00 이후 앱을 실행한 유저도 최대 1시간 이내에 주간 출석판을 수신할 수 있도록 매 정시 전체 활성 유저에게 소켓 알림 전송
    • 기존 06:00 스케줄러(streak 초기화 + 레코드 생성)와 역할 분리
  • BroadcastAttendanceBoardService 추가 — 전체 활성 유저 조회 후 ATTENDANCE/DATA_CHANGED 소켓 이벤트 발송
  • AttendanceRefetchNotifier.notifyAttendanceBoard() 메서드 추가
  • GET /api/users/me/attendance/weekly Swagger 문서 보완
    • 응답 예시에 누락된 weekNumber, currentStreak 필드 추가
    • 앱 시작 시 초기 렌더링 및 소켓 이벤트 수신 시 재호출 흐름 명시

관련 이슈

Closes #673

추가 컨텍스트

클라이언트는 두 가지 시점에 GET /api/users/me/attendance/weekly를 호출합니다.

  1. 앱 시작 시 — 출석판 초기 렌더링
  2. 소켓으로 ATTENDANCE/DATA_CHANGED 이벤트 수신 시 — 실시간 갱신

서버는 06:00에 streak 초기화 및 레코드 생성을 수행하고, 이후 매 정시마다 전체 유저에게 소켓 알림을 보내 늦게 앱을 켠 유저도 출석판을 확인할 수 있도록 합니다.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive user attendance system, including daily attendance tracking, streak management, and a reward system. It adds new database entities, repositories, services, and a scheduler to manage daily resets and record initialization. Feedback focuses on scalability concerns regarding the broadcast mechanism, a bug preventing new users from attending on their first day, the need for bulk updates when resetting streaks, and missing notification logic for rewards.

@redjungi09 redjungi09 merged commit 1ee9bfd into develop Apr 14, 2026
1 check passed
@Finefinee Finefinee added the enhancement 새로운 기능 추가 label Apr 14, 2026
@hjbin-25 hjbin-25 deleted the feat/attendance/#673 branch April 14, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants